package com.smt.modules.bus.vo;

import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import lombok.Data;
import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.smt.common.base.BaseVo;
import org.springframework.lang.NonNull;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;

/**
 * 
 * 
 * @author murong
 * @email 981620741@qq.com
 * @date 2018-11-16 11:47:30
 */
@Data
@TableName("bus_message_handle")
@ApiModel(value="",description="")
public class MessageHandleVo extends BaseVo {
	private static final long serialVersionUID = 1L;

		/**
    * 消息处理表id
    */
		@TableId
		@ApiModelProperty(value="消息处理表id",name="id")
	private Long id;
		/**
    * 方式0全员 1 独立 2 阶段发送
    */
			@ApiModelProperty(value="方式0全员 1 独立 2 阶段发送",name="type")
	private Integer type;
		/**
    * 详细内容
    */
			@ApiModelProperty(value="详细内容",name="msgBody")
	private String msgBody;
		/**
    * 发送者
    */
			@ApiModelProperty(value="发送者",name="sendUser")
	private Long sendUser;
		/**
    * 接收者id字符串连接集合
    */
			@ApiModelProperty(value="接收者id字符串连接集合",name="receviceUser")
	private Long receviceUser;
		/**
    * 项目id
    */
			@ApiModelProperty(value="项目id",name="projectId")
	private Long projectId;
		/**
    * 阶段id
    */
			@ApiModelProperty(value="阶段id",name="stageId")
	private Integer stageId;
		/**
    * 任务id
    */
			@ApiModelProperty(value="任务id",name="taskId")
	private Long taskId;
		/**
    * 子任务id
    */
			@ApiModelProperty(value="子任务id",name="subTaskId")
	private Long subTaskId;
		/**
    * 创建日期
    */
			@ApiModelProperty(value="创建日期",name="createTime")
	private Date createTime;
	/**
	 * 消息状态 0 创建未读 1 已读
	 */
	private Integer status;

	/**
	 * 删除有效位
	 */
	private Integer isDelete;


	/**
	 * 项目名
	 */
	private String projectName;

	public MessageHandleVo() {
	}

	public MessageHandleVo(Long id, Integer type, String msgBody, Long sendUser, Long receviceUser, Long projectId, Integer stageId, Long taskId, Long subTaskId, Date createTime, Integer status, Integer isDelete, String projectName) {
		this.id = id;
		this.type = type;
		this.msgBody = msgBody;
		this.sendUser = sendUser;
		this.receviceUser = receviceUser;
		this.projectId = projectId;
		this.stageId = stageId;
		this.taskId = taskId;
		this.subTaskId = subTaskId;
		this.createTime = createTime;
		this.status = status;
		this.isDelete = isDelete;
		this.projectName = projectName;
	}

	public MessageHandleVo(Integer type, String msgBody,  Long receviceUser, Long projectId, Date createTime, Integer status, Integer isDelete, String projectName) {
		this.type = type;
		this.msgBody = msgBody;
		this.receviceUser = receviceUser;
		this.projectId = projectId;
		this.createTime = createTime;
		this.status = status;
		this.isDelete = isDelete;
		this.projectName = projectName;
	}

	public MessageHandleVo(Integer type, String msgBody, Long receviceUser, Long projectId, Date createTime, String projectName) {
		this.type = type;
		this.msgBody = msgBody;
		this.receviceUser = receviceUser;
		this.projectId = projectId;
		this.createTime = createTime;
		this.projectName = projectName;
	}

	public MessageHandleVo(Integer type, String msgBody, Long receviceUser, Long projectId, Integer stageId, Date createTime, String projectName) {
		this.type = type;
		this.msgBody = msgBody;
		this.receviceUser = receviceUser;
		this.projectId = projectId;
		this.stageId = stageId;
		this.createTime = createTime;
		this.projectName = projectName;
	}

	public MessageHandleVo(Integer type, String msgBody, Long receviceUser, Long projectId, Long taskId, Long subTaskId, Date createTime, String projectName) {
		this.type = type;
		this.msgBody = msgBody;
		this.receviceUser = receviceUser;
		this.projectId = projectId;
		this.taskId = taskId;
		this.subTaskId = subTaskId;
		this.createTime = createTime;
		this.projectName = projectName;
	}
}
